//执行终端命令

const { spawn} = require('child_process')
//其实我们每次在cmd执行npm install的时候，后台都会帮我们创建一个node进程
//这里就是模拟这个node进程
const commandSpawn = (command, args, options) => {
    return new Promise((resolve, reject) => {
        const child_process =  spawn(command, args, options)
        //进程中会有很多执行命令的过程中的打印信息，要把这些信息打印出来
        child_process.stdout.pipe(process.stdout)
        child_process.stderr.pipe(process.stderr)
        child_process.on('close', (code) => {//执行完了，关闭了
            console.log(`child process exited with code ${code}`)
            resolve();
        })
    })
}

module.exports = {
    spawn,
    commandSpawn
}